package com.hedl.classroom.service;


import com.hedl.classroom.base.exception.CommonResult;
import com.hedl.classroom.base.model.PageParams;
import com.hedl.classroom.base.model.PageResult;
import com.hedl.classroom.model.dto.AddCourseDto;
import com.hedl.classroom.model.dto.CourseBaseInfoDto;
import com.hedl.classroom.model.dto.EditCourseDto;
import com.hedl.classroom.model.dto.QueryCourseParamsDto;
import com.hedl.classroom.model.po.CourseBase;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 课程信息管理接口
 */
public interface CourseBaseInfoService {

    /**
     * 课程分页查询
     * @param pageParams    分页信息
     * @param courseParamsDto   查询条件
     * @param companyId 机构id
     * @return  查询结果
     */
    PageResult<CourseBase> queryCourseBaseList(Long companyId, PageParams pageParams, QueryCourseParamsDto courseParamsDto);

    public CourseBaseInfoDto getCourseBaseInfo(Long courseId);

    /**
     * 新增课程
     * @param companyId 机构ID
     * @param addCourseDto  课程信息
     * @return  课程详细信息
     */
    CourseBaseInfoDto createCourseBase(Long companyId,AddCourseDto addCourseDto);

    /**
     * 根据id查询课程信息和营销信息
     * @param id    主键id
     * @return  课程信息和营销信息
     */
    CourseBaseInfoDto queryById(Long id);

    /**
     * 修改课程和营销信息
     * @param editCourseDto 课程和营销更改数据
     * @return  返回修改成功的数据
     */
    CourseBaseInfoDto updateCourseBaseAndCourseMarket(Long companyId,EditCourseDto editCourseDto);

    /**
     * 删除课程/课程营销信息/课程计划/任课老师
     * @param courseId  课程id
     * @param companyId 机构id
     * @return  是否删除成功
     */
    CommonResult deleteCourseBase(Long courseId,Long companyId);
}
